Skip to content

Adds OMP support for existing GWN examples#1834

Open
jcs15c wants to merge 14 commits intodevelopfrom
feature/spainhour/threaded_gwn
Open

Adds OMP support for existing GWN examples#1834
jcs15c wants to merge 14 commits intodevelopfrom
feature/spainhour/threaded_gwn

Conversation

@jcs15c
Copy link
Copy Markdown
Contributor

@jcs15c jcs15c commented Mar 27, 2026

Summary

This PR adds OMP support for the GWN examples in quest, which threading cache creation per surface and GWN evaluation per query. These changes are supported by adding "cache manager" classes to winding_number_2d/3d_memoization.hpp which provide a view to GWN caches used in execution, and a mutex in quadrature.cpp to ensure thread safety. For OMP examples, a separate cache is allocated for each thread. In the future, it might be worth investigating if there are benefits to collocating/binning the query points used for each thread to improve cache utilization. These changes are tested in quest_gwn_methods.cpp.

Many thanks to @BradWhitlock for the initial implementation of these methods, from which this PR is mostly derived.

@jcs15c jcs15c changed the title Adds OMP support for GWN examples Adds OMP support for existing GWN examples Mar 27, 2026
@jcs15c jcs15c force-pushed the feature/spainhour/threaded_gwn branch from ebd7cb6 to 6437782 Compare March 27, 2026 23:44
@jcs15c jcs15c self-assigned this Mar 27, 2026
@jcs15c jcs15c added the Quest Issues related to Axom's 'quest' component label Mar 27, 2026
@jcs15c jcs15c marked this pull request as ready for review March 27, 2026 23:46
@jcs15c jcs15c force-pushed the feature/spainhour/threaded_gwn branch from 0aa11d6 to 075e008 Compare March 31, 2026 18:14
@jcs15c jcs15c force-pushed the feature/spainhour/threaded_gwn branch 3 times, most recently from 1186e6d to 27b914d Compare April 7, 2026 23:29
Copy link
Copy Markdown
Contributor

@Arlie-Capps Arlie-Capps left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, @jcs15c .

@jcs15c jcs15c force-pushed the feature/spainhour/threaded_gwn branch from 27b914d to 32242ba Compare April 11, 2026 21:43
Copy link
Copy Markdown
Member

@kennyweiss kennyweiss left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @jcs15c -- please also update the RELEASE-NOTES.

->check(axom::utilities::ValidCaliperMode);
#endif
std::stringstream pol_sstr;
pol_sstr << "Set MIR runtime policy method.";
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
pol_sstr << "Set MIR runtime policy method.";
pol_sstr << "Set runtime policy method.";

->check(axom::utilities::ValidCaliperMode);
#endif
std::stringstream pol_sstr;
pol_sstr << "Set MIR runtime policy method.";
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
pol_sstr << "Set MIR runtime policy method.";
pol_sstr << "Set runtime policy method.";

@jcs15c jcs15c force-pushed the feature/spainhour/threaded_gwn branch from 9937a03 to a2dbdaf Compare April 13, 2026 20:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Quest Issues related to Axom's 'quest' component

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants